Content Distribution System

ABSTRACT

A content distribution system  100  is provided comprising a content client  112, 114  and a content server  150  connected through a network. The content server is configured to send the content client a session description comprising at least one media description to enable it to receive over the network a content item. The system comprises a network monitor  130  for monitoring network traffic going through the network, and a recommender  140  for marking in dependency upon the network monitor, one or more of the media descriptions in the session description to obtain a marked  112  session description. The marked media description recommends the content client to prefer certain content above others in view of the current network condition. For example, if available bandwidth is low, content is recommended which requires low bandwidth. Network congestion is thereby avoided for all users of the system.

FIELD OF THE INVENTION

The invention relates to a content distribution system comprising acontent client and a content server, the content client and contentserver being connected through a network, the content server beingconfigured to send to the content client a session descriptioncomprising at least one media description, each one of the at least onemedia descriptions comprising connection information to enable thecontent client to receive over the network a content item.

The invention further relates to a gateway for use in a contentdistribution system.

The invention further relates to a method of distributing content and toa corresponding computer program.

BACKGROUND OF THE INVENTION

The distribution of content is an important function of modern networks.Consider a content client, e.g., a set top box. The content client isconnected with one or more content servers through a network, e.g., theInternet. Typically, the content client, possibly together with othercontent clients connects with the network through a gateway. The gatewayallows network devices in the first network access to one or morenetwork devices in the second network.

The content server can provide the content client with content bysending it over the network. Content comprises, e.g., audio, videoand/or text, etc. For example, a user may watch a new movie, possiblyon-demand by receiving a content stream comprising the movie on hisset-top box and displaying the movie on a television screen. Differentprotocols are in use to send content over a network, e.g., filetransferring protocols, streaming protocols, etc.

It may happen that a particular content item is available in multipleformats. For example, the user who wishes to watch the new movie mayrequest the movie from the content server. The content server could thenrespond with a session description listing multiple options for the samemovie. The content server may offer the movie in multiple versions,e.g., with additional features, for example, with an alternative audiotrack, such as a commentary track, additional subtitles, etc. Thecontent, in any of its versions, may be available in multiple formatshaving different bandwidth requirements. For example, differentbandwidth requirements may be obtained by offering the movie in multipleresolutions, e.g., in a high definition format suitable for highdefinition television screens, in a medium definition format suitablefor non-high definition television screen, or in a low definition formatsuitable for low resolution devices, e.g., mobile phone screens.Typically, a higher definition device is capable of displaying a lowerdefinition version of the content. In general, bandwidth may berepresented as a number, e.g., kilobits per second.

The session description comprises a list of media descriptions. A mediadescription comprises information needed by a content client to startreceiving the content item.

The Internet Engineering Task Force (IETF) has published a ‘request forcomments’ (RFC), RFC 2327, later updated to 4566, titled ‘SDP: SessionDescription Protocol’. RFC 4566 discloses one way in which sessionsdescriptions and media descriptions may be implemented. RFC 4566describes the session description protocol (SDP). The protocol comprisesa standard representation of session descriptions comprising mediadescriptions.

RFC 4566 SDP is intended to be general purpose so that it can be usedfor a wide range of network environments and applications. However, RFC4566 does not support negotiation of session content or media encodings.A SDP session may contain multiple alternatives offered by the serverthat a client may choose from. For instance the service offers audio inmultiple audio formats. The client will then select a format hesupports. This selection can for instance be provided by means of RTSPsetup messages. RFC 4566 session descriptions may be conveyed over thenetwork or alternative means of conveying session descriptions may beused, including electronic mail and the World Wide Web. SDP conveysinformation about media streams in multimedia sessions to allow therecipients of a session description to participate in the session.

To this end an RFC 4566 session description may include such informationas, the type of media video, audio, etc, the transport protocol(RTP/UDP/IP, H.320, etc), the format of the media (H.261 video, MPEGvideo, etc), etc. In particular, a media description may includebandwidth information and connection information.

When the session description is received on a content client, any of themedia descriptions can be selected and the corresponding content itemmay be received on the content client.

However, for a user of the content client it is not always clear whichone he should choose. Different media descriptions may be associatedwith different media which may have different bandwidth requirements.Selecting content with appropriate bandwidth requirement is important.If content is selected with a bandwidth requirement which is too low,then it is probably also of lower quality and the resulting userexperience will correspondingly worsen. On the other hand a bandwidthrequirement which is too high will result in network congestions, anddropped frames. In other words, both choosing to low and choosing tohigh a bandwidth will lead to a low perceived quality, either throughlow resolution or compressions artifacts, or through network congestionand dropped frames.

Getting the correct bandwidth is often done using a trial and errorapproach. A trial and error approach may involve setting up a sessionwith a maximum bandwidth, and once congestion occurs, reduce the sessionbandwidth until an acceptable quality is obtained.

SUMMARY OF THE INVENTION

It is a problem of the prior art that selection from a list of multiplecontent versions on the basis of bandwidth requirements is hard.

To better address this concern, an improved content distribution systemis provided. The content distribution system comprises a content clientand a content server.

The content client and content server are connected through a network.The content server is configured to send to the content client a sessiondescription comprising at least one media description possibly uponrequest of a content client. Each one of the at least one mediadescription comprises connection information to enable the contentclient to receive over the network a content item. The system comprisesa network monitor for monitoring network traffic going through thenetwork. The system comprises a recommender configured to mark independency upon the network monitor, one or more of the multiple mediadescriptions in the session description to obtain a marked sessiondescription. The recommender is configured to send the marked sessiondescription to the content client.

Each specific connection information may enable the content client toreceive over the network a specific content item. Possibly all specificcontent items referred to by media descriptions in a session descriptionmay be different. Possibly, some or all of the referred to content itemsmay be equal and may, e.g., be offered in a different transmissionprotocol.

When a content client receives a session description comprising a mediadescription he has the option of using that media description to make aconnection over the network, e.g., to the content server or to somefurther content server, and receive the content item referred to in themedia description. It is of advantage to the user to have an idea inadvance whether making this connection will be worthwhile. However theuser is not always in the best position to make this judgment. Inparticular, if information based on network traffic plays a role theuser is at a disadvantage, since he has at best only a vague idea of hisown network traffic, and has no knowledge of network traffic caused byother, e.g., other content clients on the network.

Since the system has a network monitor such information can be added tothe session description, by adding appropriate marking. For example, byrecommending some of the media description. Recommending may berecommending in favor or recommending against. Multiple marks may beused. Marking may be explicit or implicit.

Examples of the type of information that may be used and which may bederived from past network traffic include, bandwidth availability,consumed bandwidth so far. But also estimation of bandwidth requirement,which may also be base on past network traffic.

Even if the session description contains only one media description therecommendation is useful, since a user may prefer not to receive contentat all, rather then having to sit through content which is inappropriategiven the network traffic. The session description may also comprisemultiple media descriptions.

In an embodiment, the session description comprises multiple mediadescriptions. In a session description wherein multiple mediadescriptions are available the recommender can recommend one of themedia descriptions above the others.

In an embodiment, the content distribution system comprises a gateway.The network comprises a first and second network. The content client andthe gateway are connected through the first network. The gateway and thecontent server are connected through the second network. Each one of theconnection information enables the content client to receive over thefirst and second network and through the gateway the content item. Thegateway comprises the network monitor for monitoring network trafficgoing through the gateway between the first network and second network.

A gateway is situated at a convenient place to collect networkinformation, since all of the network traffic between the first and thesecond network passes the gateway.

The recommender may mark using the gateway by sending a recommendationto the gateway. Upon receiving the recommendation the gateway mayperform the marking.

One factor which complicates the selection from multiple mediadescriptions for the content client, is his restricted view of thenetwork, i.e., of the first and second network. The content client isconnected through the first network, i.e., a local network forconnecting a content client to a gateway. The first network typicallyhas rather liberal bandwidth restrictions. The first network istypically capable of handling a much larger amount of network trafficthan the second network. For example, the second network is typicallylarger than the first network and hence more likely to contain bandwidthbottle necks. The content's client view of the second network is maskedby the large bandwidth of the first network. Moreover, other networkdevices than the content client may connect to the gateway and consumepart of the second network's bandwidth. The content client may not beable to see network traffic on the first network originating from othernetwork devices. The gateway is situated in a location in the network inbetween the content client and the content server, and for this reason,the gateway has a much better picture of prevailing network conditions.The network monitor is typically external to the content client. Thenetwork client may be combined with other network devices, e.g, gateway,router, proxy, firewall, etc.

By giving a recommendation for a particular content version, i.e., amedia description, based on the information obtained from the networkmonitor a more informed choice can be made than if this recommendationwere made in dependency on the network information available at thecontent client or at the content server.

Moreover, the system allows users to voluntarily adjust their bandwidthwhile consuming services to take other users in the home network intoaccount. These users may be willing to make concessions concerning theusage of bandwidth, for instance a video service, if this means thatanother user can also view an IPTV channel. An example of such asituation would be a household with multiple IPTV set top boxes.

Bandwidth is only an example of the type of information that can beobtained by the network monitor and which information may be relevant togive a recommendation. For example, the network monitor may also keeptrack of the total amount of network traffic that flowed through thegateway in a given timeframe. For example, the network traffic caused bythe content client and other content clients connected to the samegateway would typically have to be paid for. For example, the operatorof the gateway and/or the content client may have a subscriptionallowing a certain amount of network traffic per time frame, say 5gigabytes per month. The network monitor can keep track of the amount ofconsumed network traffic in the current time frame so far. If the amountof network traffic allowed by the subscription is nearing, therecommender may recommend against large content items which require alot of network traffic. In this way, it can be avoided that more thansome predetermined amount of network traffic is exceeded.

Another advantage of the system is that a list of media descriptions canbe modified or extended without the need of modifying the content serveritself.

The system thus improves the selection of a content version from a listof multiple content versions at a client on the basis of networkinformation obtained at a different location in the network than theclient.

The content distribution system may be used to distribute a variety ofcontent types, including video, audio and text content and anycombination thereof. The content may also include navigationinformation, e.g., menu information and/or meta information such asdescriptions of other content, tags, author information, etc, suchinformation may be structured in the form of a data structure. Thecontent may be in a variety of formats, e.g., MPEG4, MP3, HTML, etc. Thecontent may be a content stream, intended to be watched as it arrives inthe content client, possibly, after some buffering.

The content client may comprise, e.g., a computer, e.g., a desktopcomputer, a laptop, netbook etc, a set top box, a mobile phone, a PDA,etc.

The gateway may comprise other network related devices, e.g., afirewall, a router etc. In an embodiment, the gateway connects a firstnetwork with a second network, wherein the first and the second networkshare no device or network connections, other than the gateway. On theother hand, it may be possible that a device in the first network isable to communicate with a device in the second network without usingthe gateway. For example, there may be multiple gateways between thefirst and second network. For example, out of band communication may beused.

The content server may be a content system, using different computersfor different purposes. The content server may comprise a file serverfor serving the content files. The content server may comprise a webserver for requesting a session description.

The content server may comprise a management server for sending thesession description to the content client.

The first network may be a home network. The first network may be assimple as a single network connection from the content client to thegateway. On the other hand, it is also possible that multiple contentclients in a larger network connect with the gateway, for example, ahome network comprising multiple network devices.

The content client and the gateway are connected through a firstnetwork. The first network may be an Ethernet network. The first networkmay comprise a wireless network, e.g., a WiFi network. The gateway andthe content server are connected through a second network, e.g., abusiness intranet, etc.

The second network may comprise the Internet. The second network maycomprise a core network and a proprietary access network for connectingmultiple gateways and multiple first networks to the core network. Thecore network may comprise the Internet.

The session description and/or media description may conform to RFC4566. For example, a session description may conform to Section 5 of RFC4566. However, it is noted that for the purpose of the invention theterms session description and/or media description are not necessarilyrestricted to those defined in RFC 4566. For example, a mediadescription may be implemented as an URL and a session description maybe implemented as an HTML page listing multiple of those URL's. In thatcase, the recommender creates a marked HTML page. A session descriptionmay be a digital file comprising the multiple media descriptions in acomputer readable encoding. The encoding may use characters, such asASCII characters, which are also suitable for human interpretation. Thesession description may also use a binary encoding such as AbstractSyntax Notation One (ASN.1) or External Data Representation (XDR), whichneeds a parsing and/or interpretation step before it may be rendered ina human readable form. A binary encoding has the advantage that theencoding is shorter.

The distribution network is configured such that a session descriptionsent from the content server to the content client is also obtained atthe recommender. For example, sending the session description from thecontent server to the content client may comprise sending the sessiondescription from the content server to the gateway. This can beaccomplished by sending the session description through the secondnetwork and the first network. The gateway can intercept the sessiondescription before it reaches the content client, modify the sessiondescription and then send the marked session description to the contentclient to complete the sending of the session description from thecontent server to the content client.

In an embodiment, the session description is not sent through the firstand second network, but reaches the gateway in some other way. Forexample, the content client may explicitly forward the sessiondescription to the gateway. The content client may then forward thesession description to the recommender.

The content server may send the session description in response to arequest, e.g., from the content client. The content server may also sendthe session description without a request, e.g., as an announce thatcontent is available.

The network monitor may be integrated with other network monitoringdevices, in particular a firewall. The recommender may be comprised inthe gateway.

Marking a session description can be done in multiple ways. For example,additional information may be added to the session descriptionindicating which media description contained therein are marked. Theadditional information may be concatenated to the session description,or inserted in the session description. The session description andadditional information may be contained in two separate files, which areboth sent from the gateway to the content client. The marking may alsobe done by modifying the session description in other ways. For example,an order of the media descriptions in the session description may bemodified, in particular a marked media description may be moved to afirst position in the order, e.g., towards the top of the sessiondescription. The number of marked media descriptions may be apredetermined number, in particular it may be 1, or the number may bevariable. In an embodiment, it is avoided to mark all of the multiplemedia descriptions if there is more than one media descriptions presentin the session description.

For example, the session description may be marked by adding to theamount of bandwidth that should be used. From this the content clientmay infer that those media descriptions having a required bandwidthbelow the added amount are marked.

The recommender may be connected to the network monitor to receiveinformation. For example, the recommender may receive a digital summaryof the network monitoring. For example, the recommender may receive anumber such as the amount of bandwidth currently available to receiveadditional content items from the second network into the first network.For example, the recommender may receive a number such as the amount ofdata, e.g. in kilobytes per second, currently available to receiveadditional content items from the second network into the first network.The available bandwidth at a link is its unused network capacity.

The recommender is configured to send the marked session description tothe content client, e.g., via the gateway. The gateway typically usesthe first network for sending the marked session description.

It also a possibility, that the first and second network are only usedfor sending and receiving content items. Control data such as: requestsfor a session description, session descriptions, marked sessiondescriptions etc, may be sent over another channel, e.g., a differentnetwork, direct communication, using SMS, mobile phone traffic, http webtraffic etc. For example, the first and second network may be a cablenetwork suitable for receiving content, while all or part of the controldata uses the Internet for communication.

The content client can react to a marked session description in multipleways. Following the recommendation, e.g., the marked media description,gives some assurance to the user that this content is suitable given thecurrent network conditions.

One possibility is that the content client accepts the marked mediadescription as a recommendation but is otherwise free to disregard therecommendation and choose an unmarked media descriptions in the sessiondescription. For example, the content client may display the mediadescription to the user including an indication which one or ones aremarked. The user may take the risk and choose a media description whichis not marked. Another possibility is that the content client has beenconfigured, e.g., through a preferences menu, to always use a markeddescription, e.g., the single marked media descriptions. The contentclient may also be configured to ask the user for a choice, but onlyfrom marked media descriptions.

In an embodiment, the network monitor comprises a bandwidth estimatorfor estimating an amount of bandwidth available in the network forreceiving a content item. In an embodiment, the network monitorcomprises a bandwidth estimator for estimating an amount of bandwidth inthe first and second network available for receiving a content item.

It is a problem that a content client in a first network is not able todirectly see the bandwidth demand that the first network makes on thesecond network. When there are multiple content clients in the firstnetwork this problem is particularly acute. A content client may notonly consume bandwidth independently from other content clients on thesame first network, but also in way that its bandwidth consumption isnot visible to the other content clients. For example, in a home networkmultiple users may be watching a movie, independent from each other,possibly the users do not even know from each others activities. At thegateway, where content is received in the first network from the secondnetwork, it is possible to obtain information on the amount of bandwidththe first network is asking from the second network, since at this pointmultiple content receiving sessions for multiple content clients pass.If the gateway is the only point in the network where network trafficenters the first network from the second network, then the gateway canmake a more accurate assessment of the demand that the first networkmakes on the second network.

This estimated available bandwidth can be used to make a recommendationfor content from the multiple media descriptions based on bandwidth. Inan embodiment, the multiple media descriptions have respective multiplebandwidth requirements, and the recommender is configured to mark amedia description having a bandwidth requirement below the estimatedavailable bandwidth. In this way the content client is informed of whichcontent is considered suitable given the current network conditions.

If the content client is configured to use a marked media description,its user has a reasonable assurance that watching the content will notcause network congestion. Causing network congestion is undesirable.First of all, network congestions may give an unpleasant viewingexperience, since packets may be dropped. If the latency of the networkconnection is too high, the movie may stall frequently to buffercontent. There is another reason to avoid network congestion. Otherusers of the gateway, e.g., other content client, who may already bewatching content, are also impacted by the congestions. In knownsystems, a user of a content client cannot take the other members of hishousehold into account, since he has no information regarding theirbandwidth consumption. Unaware of what other people are watching, he mayunconcernedly start a high definition content download, thus ruining theviewing experience of other people in the first network. Note, in theknown systems, even if a user wants to take the users into account, heis unable to. However, using the distribution system according to theinvention, he at least knows that if he diverges from the recommendationof recommender he not only risks a bad viewing experience for himselfbut also for others on the same network.

As noted above, the content client may be configured to use a mediadescription which is not marked. The content client may also beconfigured to use a marked media description by default.

The recommender may be configured to mark more conservatively when itreceives information from the network monitor that another user is usingmore than a particular amount bandwidth. This information may indicatethat another user is watching content. In this case, network congestioninfluences more than one content client. Marking more conservatively maybe done by reducing the amount of available bandwidth by somepercentage, say 10%, for the purpose of selecting the media descriptionsfor marking.

The available bandwidth can be obtained in different ways. For example,in an embodiment, network traffic going through the gateway between thefirst network and second network is limited to a maximum bandwidth, e.g.its capacity. The bandwidth estimator comprises a network bandwidthdeterminator for determining a current bandwidth of network trafficgoing through the gateway between the first network and second network.The bandwidth estimator is configured for estimating an amount ofavailable bandwidth by subtracting the current bandwidth from themaximum bandwidth.

A router, such as an edge router may also limit the amount of bandwidththat may be used for a particular gateway using traffic shaping.Although the actual capacity of the second network may be higher,effectively, the maximum bandwidth is limited.

The bandwidth estimator may be configured with the maximum bandwidth.The number may be obtained from a network operator, e.g., an operator ofthe second network. The maximum bandwidth is related to the maximumamount of network traffic that could pass through the gateway in certainsituations, e.g., in optimal situations, or in average situations. Themaximum bandwidth is a number independent from possible current networktraffic. The maximum bandwidth may be obtained by monitoring currentused bandwidth and keeping track of the maximum current used bandwidthwhich occurred in a certain period. The period may be, say, the passedmonth. The period may also be unrestricted.

In an embodiment, the network monitor is configured to measure anaccumulated network traffic going through the gateway between the firstand the second network.

By keeping track of the total amount of network traffic going throughthe gateway in a certain time frame, say each month, the recommender canmake recommendations based on this total. Accumulated network trafficmay comprise only network traffic going into the first network from thesecond network, or of the other way round, or of both, etc. In this wayit can be avoided to go outside an amount agreed to in a subscription.Some providers have a fair use policy wherein they impose penalties onusers who exceed some amount of network traffic. The recommender canrecommend content so that the total amount of accumulated networktraffic stays below a predetermined amount.

For example, if the accumulated network traffic, e.g., the amount ofbytes requested by the first network from the second network is belowsome predetermined number, the recommender may recommend high definitionvideos. However, if the accumulated network traffic is equal to or abovethe predetermined number, the recommender may recommend standarddefinition video. In this way, the recommender helps to adapt thequality of the video to the remaining amount of bytes from the totalamount of bytes which may be requested without incurring some cost. Thepredetermined number may be chosen as a percentage of the total amountof bytes, say, 75%.

In an embodiment, the recommender is configured to remove in dependencyupon the network monitor, one or more of the multiple media descriptionsfrom the session description to obtain the marked session description.

By removing a media description, the gateway can enforce that thecontent client is unable to choose that option. For example, if thegateway can determine that the currently available bandwidth isinsufficient for the required bandwidth of a media description, it mayremove that media description. For example, the gateway may remove aspecific media description if the available bandwidth time a constant isless than the required bandwidth of the specific media description. Forexample, the constant may be more than 1, say 1.1, if user is preparedto suffer some network congestion. If the constant is more than 1, onlythose media descriptions removed with are almost guaranteed to causenetwork congestion. For example, the constant may be less than 1, say0.9, to avoid a content client from selecting a content item that maycause network congestion. It may also be left up to the user if he wantsto follow a recommendation as contained in a marked session descriptionor not.

Removing of media descriptions may also be used for content filtering.For example, media descriptions referring to content servers who areknow to distribute illegal material or who distribute without properauthorization from rights holders may be filtered, i.e., removed by therecommender.

In an embodiment, the content distribution system comprises a router, inparticular an edge router, in the second network. The gateway isconnected to the content server through the edge router. A networkconnection between the gateway and the edge router has a networkcapacity lower than a network capacity of a network connection betweenthe content client and the gateway.

It is not unusual for the second network to comprise one or morebottlenecks, that is, network connections with a lower capacity than thefirst network. Often one such bottle neck is the connection immediatelyafter the gateway. Since the gateway is connected to this connection,the gateway has a good view of the bandwidth which is achievable on thisconnection. The bottleneck may also be at different position, e.g.,immediately before the gateway, in the first network.

In an embodiment, at least one further content client is connected tothe gateway through the first network.

Having a device for to monitoring the network and recommender for makingrecommendations on the basis of the monitoring is of advantageindependent from the number of content clients on the first network.However, if there are multiple content clients on the network, it isonly the gateway that has an overview of the total amount of networktraffic caused in the second network by the first network or the currentbandwidth consumed. Information obtained from the gateway, is thereforelikely to be an accurate reflection of network conditions. Using thisinformation gives more accurate recommendations.

In an embodiment, the bandwidth estimator is configured for determininga change in the estimated amount of available bandwidth, and therecommender comprises an updater configured for sending the contentclient an updated marked session description based on the changedestimated amount of available bandwidth.

A first user who starts watching content, before a second user, mayreceive a liberal recommendation from the recommender, since the amountof available bandwidth is high. A second user may get a much moreconservative recommendation since the first user is already consuming asignificant amount of bandwidth. In this situation, the updater can sendan update to the first user recommending that he switches to a differentmedia descriptor using less bandwidth. Using updated marked sessiondescriptions enables users who are already watching a movie takes newusers into account and share bandwidth more fairly.

A further aspect of the invention concerns a gateway, for use in acontent distribution system comprising a content client, the gateway,and a content server, the gateway being connectable to the contentclient through a first network, the gateway being connectable to thecontent server through a second network, the gateway comprising anetwork monitor for monitoring network traffic going through the gatewaybetween the first network and second network, the gateway comprising areceiver for receiving from the content server a session descriptioncomprising multiple media descriptions, each one of the multiple mediadescriptions comprising connection information to enable the contentclient to receive over the first and second network and through thegateway a content item, the system comprising a recommender configuredto mark in dependency upon the network monitor, one or more of themultiple media descriptions in the session description to obtain amarked session description, the recommender being configured to send themarked session description to the content client.

A further aspect of the invention concerns a bandwidth estimator forestimating an amount of bandwidth available in the network for receivinga content item.

A further aspect of the invention concerns a method for distributingcontent, comprising monitoring network traffic going through a gatewaybetween a first network and a second network, receiving a sessiondescription comprising one or more media descriptions, each one of theone or more media descriptions comprising connection information toenable a content client to receive over the first and second network andthrough the gateway a content item, marking in dependency upon themonitored network traffic, one or more of the multiple mediadescriptions in the session description to obtain a marked sessiondescription, and sending the marked session description to the contentclient.

The method may be used in a gateway.

A method according to the invention may be implemented on a computer asa computer implemented method, or in dedicated hardware, or in acombination of both.

Executable code for a method according to the invention may be stored ona computer program product. Examples of computer program productsinclude memory devices, optical storage devices, integrated circuits,servers, online software, etc.

In a preferred embodiment, the computer program comprises computerprogram code means adapted to perform all the steps of a methodaccording to the invention when the computer program is run on acomputer. Preferably, the computer program is embodied on a computerreadable medium.

A content distribution system is provided comprising a content clientand a content server connected through a network. The content server isconfigured to send the content client a session description comprisingat least one media description to enable it to receive over the networka content item. The system comprises a network monitor for monitoringnetwork traffic going through the network, and a recommender for markingin dependency upon the network monitor, one or more of the mediadescriptions in the session description to obtain a marked sessiondescription. The marked media description recommends the content clientto prefer certain content above others in view of the current networkcondition. For example, if available bandwidth is low, content isrecommended which requires low bandwidth. Network congestion is therebyavoided for all users of the system.

For completeness it is mentioned that U.S. Pat. No. 7,593,686, withtitle “Method and system for selecting transmission modes for streamingmedia content to a wireless handset access technology” discloses a knownsystem comprising a wireless handset and a media server. The handset mayconnect to the media server in order to receive streaming media content.The wireless handset may send the media server one or more indicationsof the wireless handset's presentation capabilities. In response, themedia server may send the wireless handset a list of media content andtransmission modes, and the list of media content and transmission modesmay be tailored, at least in part, based on the presentationcapabilities of the wireless handset. Real-time media content can bestreamed to the wireless handset at different transmission modes, eachof which may consume a different level of bandwidth.

A user of the wireless handset may then select from the list of mediacontent, and the media server may stream the media content to thewireless handset using the selected transmission mode. The proposedinvention allows the user not only to select from a list, but also givehim a recommended option which can be displayed in a highlighted mannerby the handset thus improving the user experience. High lighting may bedone in number of manners, e.g., displaying in a contrasting color,different, font, underlining, etc.

The known system does not comprise a gateway situated in between thewireless handset and the media server. An intermediary point between twopoints connected through a network provides a better view of thenetwork, than any one of the end points, e.g., the wireless handset andthe media server. Although the media server tailors its offering to themobile handset, it does this on the basis of information received fromthe wireless handset, not on information from a different entity locatedat a different place in the network. It is noted that the tailoring isdone at the media server, and not at any other location in the network.

The known system does not take the currently available bandwidth, whichmay change dynamically, into account, but only a static maximumbandwidth.

SDP does not support negotiation but is only a session descriptionformat. An SDP session may contain multiple alternatives offered by aserver from which a client can choose. For instance, the server offersaudio in multiple different audio formats and/or different compressionrates. The client who receives the session description may then select aformat that he supports. This selection can for instance be provided bymeans of RTSP setup messages.

For completeness, it is mentioned that RFC 3264, “An Offer/Answer Modelwith the Session Description Protocol” uses the Session DescriptionProtocol (SDP). In the model, one participant offers the other adescription of the desired session from their perspective, and the otherparticipant answers with the desired session from their perspective toarrive at a common view of a multimedia session between them. This modelonly works if both the client and the server have all the neededinformation to make an informed decision regarding the media descriptionwhich is currently the best option. In particular, RFC 3264 does notmake use of a third entity in the network different from the contentclient and the content server which has access to additional informationunknown to client and server, such as a network monitor or arecommender, to recommend one of the media descriptions.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is explained in further detail by way of example and withreference to the accompanying drawings, wherein:

FIG. 1 is a block diagram illustrating a first embodiment of the contentdistribution system according to the invention,

FIG. 2 is a sequence diagram illustrating a possible exchange ofmessages according to the invention,

FIG. 3 a shows an example session description,

FIG. 3 b shows an example marked session description,

FIG. 4 is a flow chart illustrating a method according to the invention.

Throughout the Figures, similar or corresponding features are indicatedby same reference numerals.

LIST OF REFERENCE NUMERALS

-   100 a content distribution system-   112 a first content client-   114 a second content client-   116 a first network connection-   120 a gateway-   130 a network monitor-   135 an updater-   140 a recommender-   145 a recommender connection-   152 a second network connection-   154 an edge router-   155 a sever connection-   150 a content server-   210 sending a first request-   220 sending a first session description-   230 sending a first marked session description-   240 sending a second request-   250 sending a second session description-   260 sending an updated session description-   270 sending a second marked session description-   300 a session description-   310 a first media description-   320 a second media description-   325 a bandwidth recommendation-   350 a marked session description-   400 a method for distributing content-   410 monitoring network traffic going through a gateway between a    first network and a second network-   420 receiving a session description comprising multiple media    descriptions, each one of the multiple media descriptions comprising    connection information to enable a content client to receive over    the first and second network and through the gateway a content item-   430 marking in dependency upon the monitored network traffic, one or    more of the multiple media descriptions in the session description    to obtain a marked session description-   440 sending the marked session description to the content client-   450 receiving over the first and second network and through the    gateway a content item corresponding to a marked media description

DETAILED EMBODIMENTS

While this invention is susceptible of embodiment in many differentforms, there is shown in the drawings and will herein be described indetail one or more specific embodiments, with the understanding that thepresent disclosure is to be considered as exemplary of the principles ofthe invention and not intended to limit the invention to the specificembodiments shown and described.

FIG. 1 illustrates a content distribution system 100 according to theinvention with a block diagram. Content distribution system 100comprises multiple content clients, shown are a first content client 112and a second content client 114. The system may also be used, with onlya single content client. Content distribution system 100 comprises agateway 120 and a content server 150. The content clients are connectedthrough a first digital network with gateway 120. Of the networkconnections in the first network one is shown: a first networkconnection 116, connecting the first content client 112 with gateway120. A network may comprise multiple connections, in a number of networkarchitectures. Content server 150 is connected with gateway 120 througha second network. The second network is typically larger than the firstnetwork.

The first and/or second network is typically a best effort network anddoes not provide any guarantees regarding the delivery of data packets,such as a certain Quality of Service (QoS) level. Typically, all contentclients obtain the same best effort service, and network problems suchas throughput, packet loss and high latency are primarily determined bythe network load. The first and/or second network may be based on theinternet protocol (IP).

Optionally, the second network comprises an edge router 154. The edgerouter may be operated by an Internet Service provider (ISP). FIG. 1shows a second network connection 152 from gateway 120 to edge router154 and a sever connection 155 from edge router 154 to content server150. Connections which are shown here schematically may comprisesmultiple connections, routers, etc. The second network may comprisemultiple servers, routers, clients, etc. The network between edge router154 and content server 150 may be referred to as the edge network or thecore network.

The network between gateway 120 and edge router 154 may be an accessnetwork, i.e., the network which connects the first network, say a homenetwork, with the edge network. The access network often has a limitedcapacity, e.g., limited to a maximum bandwidth. A typical example is aDSL connection with a capacity of 12 Mbit/s. This capacity allows forthe distribution of, for instance, one 8 Mbit/s IPTV stream from theVideo Server in the edge network to a Video Client in the home network.

Second network connection 152 typically has a lower bandwidth than firstnetwork connection 116 and/or server connection 155. Typically, when acontent client receives content from content server 150 then the maximumthrough put, the maximum bandwidth, is limited by the maximum bandwidthof second network connection 152. The network, i.e., the first and/orsecond network, may comprise further or other bottlenecks. Secondnetwork connection 152 is also referred to as the access link.

Multiple users located in the same first network may want to watchdifferent IPTV streams simultaneously. The access link capacity might betoo small to support multiple concurrent video services. For example,the delivery of two 8 Mbit/s video streams over a 12 Mbit access link totwo content clients will lead to problems in the playback of thesestreams. In this case both content clients will receive impaired videostreams.

If the network load from the second network on edge router 154 increasesbeyond the capacity of second network connection 152, then edge router154 will typically drop network packets. This will lead to impairmentsin any video stream which is going over second network connection 152,resulting in degraded quality for both users.

Gateway 120 comprises a network monitor 130 for monitoring networktraffic going between the first network and the second network. Networkmonitor 130 may be restricted to the monitoring of network traffic goinginto the first network, e.g., from the second network. If mostcircumstances this will give good results, since typically when there isa bandwidth problem it would be caused by the second network generatingtoo much traffic towards the first network. Monitor 130 may,alternatively monitor network traffic going out of the first network.Monitor 130 may monitor all traffic going through the gateway.

Content distribution system 100 further comprises a recommender 140. Therecommender is configured to receive information from network monitor130 over a recommender connection 145. Recommender 140 may be positionedat various places in the network, e.g., in gateway 120, content server150 or in a content client.

Use of content distribution system 100 is illustrated using the sequencediagram shown in FIG. 2. The progress of time is illustrated in FIG. 2,as going from the top of the figure to the bottom. We will suppose thatsecond content client 114 is the first to request content from contentserver 150, and to use second network connection 152. Second contentclient 114 sends a first request 210 to content server 150. Contentserver 150 responds by sending a first session description 220. As thefirst session description passes through the network, it eventuallyarrives at gateway 120. Since the network is at this point mostly idle,recommender 140 may recommend the highest quality media descriptioncontained in the first session description. Gateway 120 sends a firstmarked session description 230 to second content client 114. Secondcontent client 114, possibly followed by one or more other contentclients in the first network starts receiving content from a contentserver (not shown in FIG. 2), such as content server 150. These contentreceiving sessions consume part of the bandwidth capacity of secondnetwork connection 152. For example, a user of second content client 114may be watching a High Definition (HD) IPTV stream on second contentclient 114, e.g., a PC. The content is received in the first networkthrough gateway 120. The network traffic caused by the received contentis monitored by network monitor 130. For example, network monitor 130counts the number of bits that flows into the first network per second,i.e., the current used bandwidth. Network monitor 130 may also keeptrack of the highest maximum used bandwidth which occurred in the pastmonth, or ever, e.g., using a moving average calculation or some othercalculation. The highest maximum used bandwidth may be used as a maximumbandwidth, i.e., an estimate for the capacity of the network, inparticular of connection 152. It may be then assumed that the networktraffic that may go through the gateway between the first network andsecond network is limited to the maximum bandwidth.

Network monitor 130 may determine the current available bandwidth bysubtracting the current used bandwidth from the maximum bandwidth.Recommender 140 receives current available bandwidth from networkmonitor 130 over recommender connection 145. Alternatively, recommender140 may also receive the current used bandwidth and the maximumbandwidth and calculate the current available bandwidth from thisinformation.

At some point content server 150 sends first content client 112 a secondsession description 250. The second session description is interceptedat gateway 120. Content server 150 may have been triggered to send thesecond session description by a request which was previously receivedfrom first content client 112, e.g., over the network. For example,first content client 112 has previously sent a second request 240 tocontent server 150. For example, a user of first content client 112selects, e.g., through an EPG, a movie for first content client 112,e.g., a Set Top Box (STB). First content client 112 queries a contentserver 150 for a description of the content. The content server replieswith at least a session description message, for instance an RFC 4566Session Description Protocol (SDP) message.

The SDP message may provide meta-data about the session, e.g., theauthor, the title, contact information etc. The SDP message may providedifferent media formats in which the selected content item can bedelivered, e.g., which transport protocols, video format, audio formatetc. For example, it may contain descriptors indicating a multi layerSVC stream, say a 5 layer SVC stream (see below).

Session description messages can be offered in various formats, forinstance plain text, xml, or SDP format and can be transmitted fromcontent server 150 to first content client 112 in several manners, e.g.,using the RTSP protocol, SIP, HTTP, SAP announcements, etc.

Content server 150 may also send first content client 112 the sessiondescription of its own accord without a request from a content client,for example to announce the availability of new or updated content. Inthis case, there is no sending of the second request 240. The sessiondescription may be broadcasted by content server 150 to multiple contentclients, e.g., the content clients connected to gateway 120.

The session description sent from content server 150 is transmitted overserver connection 155 to edge router 154 and from there to gateway 120over second network connection 152. Gateway 120 intercepts the sessiondescription, for example, using deep packed inspection. Gateway 120transmits the intercepted session description to recommender 140 overrecommender connection 145.

Recommender 140 inspects the session description that was received fromcontent server 150. It determines media descriptions which are embeddedin the session description. Recommender 140 also tries to determine foreach media description what bandwidth is required. The requiredbandwidth may be included in the session description. The requiredbandwidth may also be determined on the basis of the intended use of thecontent. For example, from an attribute of the content, such asresolution, frames per second, color depth, etc, the required bandwidthmay also be determined or estimated. If recommender 140 fails toestablish a required bandwidth for a media description, recommender 140may ignore it, not mark it, or even remove the media description fromthe session description.

The bandwidth requirement may also be determined on the basis of ahistory of received content. For example, the recommender may store ahistory of received media descriptions which were used by a contentclient. The recommender further stores the amount of bandwidth the mediadescription required. When the required bandwidth is needed for areceived media description, it can be determined by the recommender ifit is equal to a stored media description, and if so the stored amountof used bandwidth may be used as an estimate for the requirement of thecurrently received media description.

For each media description, network monitor 130 may determine from itsrequired bandwidth and the available bandwidth if the network iscurrently capable of transmitting the content from content server 150 tofirst content client 112 over the second and first network, withoutcausing network congestion, i.e., network monitor 130 verifies if therequired bandwidth is less than the available bandwidth. Network monitor130 may also take a safety margin into account. For example, byverifying that the required bandwidth is less than the availablebandwidth times a certain number, say, 0.9.

Recommender 140 marks media descriptions in the session descriptionaccording to a marking scheme. For example, recommender 140 may mark anymedia description whose required bandwidth is below the currentavailable bandwidth. For example, recommender 140 may mark only onemedia description, namely the media description with the highestbandwidth requirement, yet whose bandwidth requirement is below thecurrent available bandwidth. In case none of the media description has arequired bandwidth which is below the current available bandwidth,recommender 140 may mark none of the media descriptions, or instead themedia description with the lowest required bandwidth. Many alternativemarking schemes are possible.

Gateway 120 may receive from recommender 140 the recommended mediadescriptions in the session description and mark the recommended sessiondescriptions accordingly, and transmit it to first content client 112through the first network.

Gateway 120 may receive from recommender 140 the marked sessiondescription. Gateway 120 can transmits it to first content client 112through the first network. Alternatively, the marked session descriptionis sent by the recommender to the client without using the gateway.

Recommender 140 uses network monitor 130, e.g. for monitoring of theaccess network traffic and the access link capacity to determine whatvideo services can be supported. Network monitor 130 may operateimplicitly, e.g. as a forced or transparent network monitor 130, whereinall session establishment related information passes network monitor130. Network monitor 130 may operate explicitly, e.g., the contentclients connect to content server 150 via network monitor 130. Assession information passes through the network monitor 130, the networkmonitor 130 can maintain all current sessions and thus keep track of thebandwidth usage of different sessions.

The network monitor may be, but is not necessarily, comprised in thegateway. The network monitor may receive network information from thegateway.

Recommender 140 analyzes the session descriptions to determine thebandwidth requirements for the session and the structure of the session,e.g., how the respective layers are delivered. Recommender 140 may addrecommendations to the session description regarding the amount ofbandwidth that should be used.

A recommendation, i.e., a marking of the session description, regardingthe amount of bandwidth that should be used can be in several forms. Forexample, one or more of the media descriptions may be marked directly byadding a reference to the marked media description to the sessiondescription. Marking of the session description may also comprise addingthe recommended amount of bandwidth, e.g., the available amount ofbandwidth to the session descriptions, adding the recommended subset ofSVC video layers. In case a session description offers content inmultiple audio and/or video codecs, then media descriptions may bemarked by referring to the recommended video and/or audio codec. In casea video is offered in low/mid/high setting, then media descriptions maybe marked by referring to a recommended video preset.

Gateway 120 sends the second marked session description 270 to firstcontent client 112. After first content client 112 has received themarked session description he has the option of following therecommendation from recommender 140. If first content client 112 followsthe recommendation from recommender 140, there is a reasonableexpectation that the additional network traffic by watching a markedmedia description will not cause network congestion, e.g., networkcongestion on second network connection 152.

If recommender 140 determines that a different content client on thefirst network is using a lot of bandwidth, say second content client114, which blocks first content client 112 from obtaining reasonablequality content without causing network congestion, then recommender 140may send second content client 114 an updated marked session description260. For example, recommender 140 may optionally comprise an updater 135for determining if changed bandwidth condition, e.g., due to changed,e.g., increased, demand from the first network or due to a change insupply from the second network, merits sending an update. The updatedmarked session description gives a new recommendation, adapted to adifferent available bandwidth. If second content client 114 follows therecommendation, then both first content client 112 and second contentclient 114 may be able to watch reasonable quality content.

Similarly, when the available bandwidth increases, e.g., because some ofthe content clients stop watching the content, then recommender 140 maysend an updated marked session description to indicate that the clientmay switch to content with a higher required bandwidth withoutadditional risk of causing network congestion. First content client 112and/or second content client 114 may be configured to follow an updatedmarked session description automatically.

Updated marked session descriptions are particular advantageous whencombined with scalable video coding (SVC, further described below). SVCallows for the dynamic delivery of enhancement layers, allowing gracefuldegradation or improvement of the video service, without playbackissues. A client who watches content encoded with SVC may switch to amedia description with a different number of layers, withoutexperiencing a glitch in the playback.

It is of advantage to combine updated marked session descriptions withthe possibility to remove media description with a bandwidthrequirement. The content client may be configured to stop receiving thecontent associated with the removed media description. The recommendercan thus arrange the bandwidth consumption in the entire first networkin a more efficient manner.

A content client may periodically query recommender 140, using a pollingor call-back mechanism to check for updates. Recommender 140 mayannounce the updated recommendations, for instance via an RTSP announcemessages or an UPnP event.

By adding bandwidth recommendations by marking a session description,new sessions can be setup without causing network congestion to occur,which would affect both the user initiating the session and other usersalready in sessions. Users can obtain network resources in an unmanagednetwork without a trial and error approach. If multiple users arewatching a content stream then a trial and error approach willnegatively impact all users.

Gateway 120, in particular network monitor 130 may also monitor requestfor session descriptions coming from the first network and going to thesecond network, e.g., request 210 or 240. A request for a sessiondescription may comprise information on capabilities of the contentclient. This information may be used in addition to other information,e.g. available bandwidth information. For example, if from the requestit can be determined that the content client has a client bandwidthmaximum, the maximum amount of bandwidth that can be used by the contentclient, the recommender can avoid recommending content with a higherbandwidth requirement. For example, a device capable of displaying SDvideo had a corresponding client bandwidth maximum. The recommender canrecommend against HD content which has a bandwidth requirement above theclient bandwidth maximum. Gateway 120, in particular network monitor130, may store client capabilities in a storage medium, for future use.

Message 260 could be omitted altogether; In that case, client 112receives in message 270 a recommendation to use a low bandwidth versionof the content.

In an embodiment, messages 260 and 270 may be as follows. Message 260request client 114 to voluntary switch to content requiring lessbandwidth than client 114 is currently consuming. Client 114 may or maynot accept this recommendation. Message 270 comprises a recommendationbased on the currently available amount of bandwidth, assuming client114 does not switch. Note that there is no need for gateway 120 to waitfor a reply to message 260 before sending message 270. Message 270 maycomprise an explicit indication for client 112 that an updated markedsession description has been sent to a different content client to freeup bandwidth. Message 270 may be implicitly so interpreted by client112. Client 112 then has the option of connecting for content with alower bandwidth requirement, and poll gateway 120, in particularrecommender 140, after some predetermined time period, e.g., after 10seconds, if the available bandwidth has increased. If so, content client112 may receive an updated marked session description (not shown in FIG.2). Client 112's updated marked session description may also be sent onthe initiative of gateway 120, etc. This solution is well suited forunmanaged networks. It is compatible with implementations, e.g., networksoftware, which is not adapted for regulating bandwidth in order toobtain a guaranteed quality of service. Instead, the users can voluntarydistribute the available bandwidth among them selves on a voluntarybasis. No changes are needed to the low-level network infrastructure inthe first network.

The order of messages 260 and 270 may be interchanged, i.e., message 270is sent first, recommending a low bandwidth content version to client112, after which an updated marked session description is sent to client114. If the network monitor notes that more bandwidth is available,either because client 114 followed the updated recommendation or forsome other reason, an updated marked session description may be sent toclient 112, recommending a higher bandwidth recommendation.

A service running on a content client may not follow a recommendation ina marked session description. As a result, congestion in the network mayoccur, leading to a reduction in service experience. This could also bethe case with other types of applications competing for traffic, such asbandwidth-hogging applications such as peer-to peer based datatransfers, e.g. Bittorrent. To address this problem, the invention couldbe combined with other approaches to prevent some applications of usingtoo many resources, in particular network resources such as availablebandwidth. For example, resource allocation and scheduling techniquesmay be combined with the invention, including known techniques such as:Fair queuing, Weighted queuing, Priority queuing and Class basedqueuing.

Services adhering to the bandwidth recommendations may be assigned to ahigher priority traffic class while other traffic could automatically beassigned to a lower priority class. For example, a service running on acontent client which does not recognize or ignores the recommendations,e.g. the markings, in the session description may be placed in lowerpriority class.

For example, for video services a guaranteed bandwidth of 15 mbit/s maybe allocated, while for other traffic only a guaranteed bandwidth of 3mbit/s is allocated. All video services combined can use 15 mbit/s whicha recommender, e.g. in a proxy or gateway will help to divide. All otherservices may use at least use 3 mbit/s and optionally more (namely theportion of the bandwidth allocated for the video service which iscurrently not used or needed by video services).

In this way, “compliant services”, i.e., services who recognize andfollow bandwidth recommendation only compete for bandwidth with othercompliant services.

Below further details and/or embodiments and/or parts thereof arediscussed.

Multiple media descriptions having different bandwidth requirements maybe obtained using Scalable Video Coding (SVC). A video encoded withscalable video coding comprises multiple different layers, which may beincrementally combined to provide progressive enhancements. A scalablevideo may comprise a base layer, providing a basic representation of thevideo signal and optionally comprises one or more enhancement layers,which enhance the base layer to provide a higher video resolution, framerate and/or video quality. SVC video allows for servicing video todifferent kind of end devices, which have their respective constraints:screen size, processing power, etc. SVC video layers can be transmittedindependently, allowing for flexible delivery of video streams.

One possibility is to refer in the media description to the same SVCencoded video, wherein different media descriptions require a differentnumber of enhancement layers.

Although each media description refers to the same video, they havedifferent bandwidth requirements since they refer to a different numberof layers. SVC is described more fully in ITU-T recommendation h.264:Advanced video coding for generic audiovisual services (March 2009).

A further possibility is for content server 150 to offer multipleversions of the same video stream in different bit rates. Connectioninformation of different video streams may be recorded in differentmedia descriptions. A lower bit rate version of a video stream may beobtained by using less bytes to describe the images, e.g., using adifferent compression factor or by transcoding it to a lower resolutionor by some other suitable method.

Estimation of the (current) available bandwidth may be done in a varietyof ways. For example, gateway 120 may comprise an access link capacitydeterminator for determining the maximum capacity of the access link, aused network bandwidth determinator for monitoring the currentthroughput of the access link and an available bandwidth estimator forestimating the amount of available bandwidth based on the access linkcapacity and the current throughput level.

To determine the effective access link capacity (the availablebandwidth), several mechanisms are possible.

-   -   gateway 120 may have access to management information, which can        be retrieved for instance via SNMP of TR-69.    -   network monitor 130 may periodically poll the current traffic        rate. For example, polling edge router 154, e.g., using SNMP, to        retrieve the current traffic rate and the maximum reported        value. Using a weighed average function the network monitor 130        can establish a mean value of the available access link        capacity.    -   network monitor 130 can periodically start a test file transfer        with a server, e.g. a web server, e.g., content server 150, to        determine the maximum bandwidth.

Bandwidth estimation tools are given in Strauss J. et al. “A MeasurementStudy of Available Bandwidth Estimation Tools”.

Network monitor 130 could monitor the peak levels of the throughput ofthe connection. For example, if the throughput never exceeds 20 Mbit/s,this value could be taken as an upper limit for the access linkcapacity.

Monitoring of the currently used bandwidth, in particular, monitoringhow much of second network connection 152's bandwidth is currently used,can be done in a number of ways. Network data traffic from the firstnetwork to the access network, and vice versa, passes gateway 120.Gateway 120 is typically capable of determining the amount of trafficpassing from the first network to the access link, which is often thelow bandwidth connection and vice versa. Alternatively, this informationcan be obtained from a separate router, e.g., edge router 154, via asoftware function call or by means of network management protocols suchas SNMP (RFC 1157, RFC 2578 and RFC 2571).

Alternatively the network monitor 130 can keep track of all currentlyongoing sessions and their bandwidth requirements. The amount ofbandwidth used could then be determined by adding the bandwidthrequirements of all ongoing sessions.

The amount of available bandwidth may also be estimated based oncapacity of second network connection 152 and the current throughputlevel. The amount of available bandwidth may be estimated based on thetotal access link capacity and the current bandwidth usage level, e.g.,by subtracting the used bandwidth from the total bandwidth to obtain theavailable bandwidth.

Based on this availability, a recommendation for a new session can thenbe given, the recommended bandwidth being at most the availablebandwidth. Typically, a margin of 10-20% is used to account forfluctuations in the network traffic.

Gateway 120 may be an intermediary who acts as both a server and acontent client for the purpose of retrieving resources or resourcemanifestations on behalf of other content clients. Gateway 120 may be orcomprise a proxy. In an embodiment, all communication between the userand a content server is mediated by the gateway 120, allowing therecommender 140 to add recommendations to session description messagestransmitted between the users and the content servers.

The network monitor 130 can detect new sessions implicitly orexplicitly.

Using implicit session detection, network monitor 130 detects newsessions by intercepting the session establishment messages from acontent client to a content server and vice versa. This interception mayoccur in gateway 120. Gateway 120 may intercept session establishmentmessages by analyzing packets flowing through it. Session establishmentpackets can be detected and selected by means of, but not limited to,the following criteria.

-   -   Protocol port number: Session establishment protocols such as        RTSP, SIP, HTTP and RTMP typically use a fixed destination or        source port. For instance RTSP messages are typically send via        port 554 or 8554, SIP messages via port 5060 and 5061. HTTP and        RTMP messages typically use port 80    -   Network addresses. The network monitor 130 may have access to a        list of the addresses of well know content servers. This list        could be configured by the user, received from a web service or        composed from previous sessions for with the network monitor 130        was used. A Video Service may intercept all traffic from or to        these addresses.    -   Deep packet inspection, e.g., scanning all packets        (header+content) for information matching predefined session        establishment identifiers.

Network monitor 130 may also detect new sessions using explicit sessiondetection. In this mode a content client, e.g., first content client112, transmits new session setup requests via the gateway 120. Forexample, the content client explicitly transmits new requests to thegateway 120, which can then forward the message on behalf of the client.A message from the content server 150 will be sent to gateway 120, whichwill forward the message to the content client.

Determining bandwidth requirements may be done in a number of ways. Forexample, when network monitor 130 detects a new session request, thenetwork monitor 130 or recommender 140 analyzes the session descriptionin the session request (or response). The session description is storedin a message format such as the Session Description Protocol (RFC 4566).SDP messages contain meta-information about the session, e.g.,multimedia session, which is being setup: a description of the session,the transport protocols to transfer the RTP data; network addressing;audio and video formats that can be used; bandwidth requirements, etc.The network monitor 130 or recommender 140 parses the sessiondescription messages to detect parameters indicating the bandwidthrequirements for a session. The session description messages forinstance could contain:

-   -   bandwidth requirements for a session;    -   various alternatives for sessions, including alternative        bandwidth requirements (for instance a video is offered in two        video formats)    -   Layer information, with bandwidth requirements per layer. An        example would be a Scalable Video Coding (SVC) session with a        base layer and one or more enhancement layers

Below we provide an example of a recommendation. Based on the determinedbandwidth requirements the recommender 140 determines what sessionalternatives are possible. Consider the following, first example:

The access links capacity (Bandwidth total)=6 Mbit/s

The current bandwidth usage (Bandwidth used)=3 Mbit/s

Available bandwidth is determined as the difference 6−3=3 Mbit/s

The session offer from content server 150 contains two alternatives,e.g., two media descriptions:

-   -   a High Definition video stream requiring 4 Mbit/s    -   Standard Definition video stream requiring 2 Mbit/s

Mbit/s stands for Megabit per second.

The recommender 140 determines that the High Definition session willresult in network issues, since the required bandwidth (4 Mbit/s) ishigher than the available bandwidth (2 Mbit/s) network monitor 130 addsa bandwidth recommendation for the Standard Definition session to thesession description being sent to the content client. The bandwidthrecommendation may be expressed by adding information to the sessiondescription representing that the recommended bandwidth is 3 Mbit/s. Thebandwidth recommendation may be expressed by adding information to thesession description representing an indication of the standarddefinition video stream.

A bandwidth recommendation of 0 may signal a recommendation that thenetwork is too unreliable or has too low available bandwidth for anymeaningful content transmission.

Consider the following, second example:

The access links capacity=6 Mbit/s

The current bandwidth usage=3 Mbit/s

Available bandwidth is determined as the difference 6-3=3 Mbit/s

The session offer from a content server contains a Scalable Video Codingsession with the following parameters:

-   -   the base layer requires 1 Mbit/s    -   a first enhancement layer requires 2 Mbit/s    -   a second enhancement layer requires an additional 2 Mbit/s

The recommender 140 determines that the base layer and first enhancementlayer can be transmitted given the current network conditions adds abandwidth recommendation for the base layer and the first enhancementlayer. For example, recommender 140 adds information representing ‘total2 layers, i.e. one base and one enhancement layer’. For example,recommender 140 adds information indicating the first enhancement layer,the content client inferring that the base layer would also be needed.

Below an example of bandwidth recommendation using the SessionDescription Protocol is given.

Consider a streaming audio session where the server offers the audio intwo variants: an audio stream with a bit rate of 32 kbit/s and an audiostream with a bit rate of 64 kbit/s. The current available access linkbandwidth is 40 kbit/s. content server 150 transmits the SDP sessiondescription shown in FIG. 3 a to first content client 112. On its way tofirst content client 112, the session description arrives at gateway 120where it is intercepted.

The fields used in the session description are explained in RFC 4566. Inparticular the fields indicated with a ‘=’ are explained in Section 5thereof. Connection information is provided with the line starting with‘c=’

A line beginning with ‘m=’ starts a new media description. The sessiondescription shown in FIG. 3 a has two media descriptions, indicated with310 and 320. The lines starting with ‘b=’ are bandwidth informationlines. Each shown media description has a bandwidth information line.Recommender 140 may determine the required bandwidth of a mediadescription from the bandwidth information lines.

This message is parsed by recommender 140, which identifies the twoaudio streams and the bandwidth requirements given by the b=AS:32 andb=AS:64 attributes.

Supposing, as an example, that the available bandwidth in the accesslink is limited to 40 kbit/s, recommender 140 will recommend the firstaudio stream. This recommendation may be given by the following sessionattribute:

a=recomsessionbw:32

This attribute is added to the SDP description to obtain a markedsession description which is then forwarded to the content client. Themarked session description is shown in FIG. 3 b. Apart from the addedline, the marked session description is the same as the sessiondescription received in gateway 120 from content server 150. The addedline is indicated with reference number 325.

First content client 112 parses the marked SDP file and detects theprovided bandwidth recommendation (32 kbit/s). Based on this informationfirst content client 112 may decide to use the media description 310.First content client 112 may also be configured to use the indicatedmedia description 310 by default. Indicating media description with abandwidth recommendation number as above, is particularly efficient ismultiple media descriptions have a bandwidth requirement below theavailable bandwidth.

Instead of providing a recommended bandwidth number, recommender 140 mayalso identify the media stream that fulfils the bandwidth constraints,by means of the RTP payload type number; Line 325 in FIG. 3 b may bereplaced by the following:

a=recomsessionid:96

First content client 112 parses this marked SDP description and see theidentifier for the recommended media stream (the first audio stream).Identifying a particular media description, e.g., by reference to areference number of the media description, is particularly efficient ifone or a few media description are to be singled out. For example, ifmultiple media descriptions have a bandwidth requirement below theavailable bandwidth, but one is of a higher quality than the other, thenit may be identified by reference.

The recommender may also remove an unmarked media description from thesession description. For example, media description 320 could be removedfrom the session description.

If the available bandwidth in the access link were limited to 80 kbit/s,recommender 140 may recommend the second audio stream, e.g., with theline a=recomsessionbw:64. Marking the second audio stream (320) may alsobe done by moving the marked stream to the top of the mediadescriptions, in this case, by reverting the order of 310 and 320 in thesession description.

These are mere example implementations of how the recommendation couldbe signalled in an SDP description and should not be seen as the onlymethods to signal bandwidth recommendations in an SDP description.

In a further embodiment, edge router 154 may assume the role of gatewayfor the purpose of the invention. Edge router 154 connects two networkswith each other, routing traffic between the one network and the other.Edge router 154 may comprise network monitor 130, and/or recommender140.

It is noted that the invention may also be used without a gateway. Forexample, in a content distribution system comprising a content clientand a content server, the content client and the content server beingconnected through a network, the content server being configured to sendto the content client a session description comprising one or multiplemedia descriptions, each one of the media descriptions comprisingconnection information to enable the content client to receive over thenetwork a content item, wherein the system comprises a bandwidthestimator for estimating an amount of available bandwidth in the firstand second network available for receiving a further content item, thesystem comprises a recommender configured to mark in dependency upon theamount of available bandwidth, one or more of the multiple mediadescriptions in the session description to obtain a marked sessiondescription, the recommender being configured to send the marked sessiondescription to the content client. This system may be combined withsuitable features of content distribution system comprising a gateway.

FIG. 4 illustrates using a flow chart a method 400 according to theinvention. The part of the flowchart 400 indicated with reference number445 may be executed in a gateway and/or recommender, e.g., gateway 120and recommender 140. Flowchart element 410 illustrates monitoringnetwork traffic going through a gateway between a first network and asecond network. Flowchart element 420 illustrates receiving a sessiondescription comprising multiple media descriptions, each one of themultiple media descriptions comprising connection information to enablea content client to receive over the first and second network andthrough the gateway a content item. Flowchart element 430 illustratesmarking in dependency upon the monitored network traffic, one or more ofthe multiple media descriptions in the session description to obtain amarked session description. Flowchart element 440 illustrates sendingthe marked session description to the content client. Flowchart element450 illustrates receiving over the first and second network and throughthe gateway a content item corresponding to a marked media description.Receiving a content item corresponding to a marked media description maybe done in a content client, e.g., first content client 112, and isenabled by the information in a marked media description.

The session description received in flowchart element 420 may alsocomprise a single media description. In that case the recommender canrecommend in favor or against using the single media description.

Many different ways of executing the method are possible, as will beapparent to a person skilled in the art. For example, the order of thesteps can be varied or some steps may be executed in parallel. Moreover,in between steps other method steps may be inserted either. The insertedsteps may represents refinements of the method such as described herein,or may be unrelated to the method. For example, monitoring networktraffic may be done in parallel to any one of the other method steps.Moreover, a given step may not have finished completely before a nextstep is started.

A method according to the invention may be executed using software,which comprises instructions for causing a processor system to performmethod 400. Software may only include steps taken by a gateway device,or only those taken by a content client. The software may be stored in asuitable storage medium, such as a hard disk, a floppy, a memory, etc.The software may be sent as a signal along a wire, or wireless, or usinga data network, e.g., the Internet. The software may be made availablefor download and/or for remote usage on a server.

It will be appreciated that the invention also extends to computerprograms, particularly computer programs on or in a carrier, adapted forputting the invention into practice. The program may be in the form ofsource code, object code, a code intermediate source and object codesuch as partially compiled form, or in any other form suitable for usein the implementation of the method according to the invention. It willalso be appreciated that such a program may have many differentarchitectural designs. For example, a program code implementing thefunctionality of the method or system according to the invention may besubdivided into one or more subroutines. Many different ways todistribute the functionality among these subroutines will be apparent tothe skilled person. The subroutines may be stored together in oneexecutable file to form a self-contained program. Such an executablefile may comprise computer executable instructions, for example,processor instructions and/or interpreter instructions (e.g. Javainterpreter instructions). Alternatively, one or more or all of thesubroutines may be stored in at least one external library file andlinked with a main program either statically or dynamically, e.g. atrun-time. The main program contains at least one call to at least one ofthe subroutines. Also, the subroutines may comprise function calls toeach other. An embodiment relating to a computer program productcomprises computer executable instructions corresponding to each of theprocessing steps of at least one of the methods set forth. Theseinstructions may be subdivided into subroutines and/or be stored in oneor more files that may be linked statically or dynamically. Anotherembodiment relating to a computer program product comprises computerexecutable instructions corresponding to each of the means of at leastone of the systems and/or products set forth. These instructions may besubdivided into subroutines and/or be stored in one or more files thatmay be linked statically or dynamically.

The carrier of a computer program may be any entity or device capable ofcarrying the program. For example, the carrier may include a storagemedium, such as a ROM, for example a CD ROM or a semiconductor ROM, or amagnetic recording medium, for example a floppy disc or hard disk.Furthermore, the carrier may be a transmissible carrier such as anelectrical or optical signal, which may be conveyed via electrical oroptical cable or by radio or other means. When the program is embodiedin such a signal, the carrier may be constituted by such cable or otherdevice or means. Alternatively, the carrier may be an integrated circuitin which the program is embedded, the integrated circuit being adaptedfor performing, or for use in the performance of, the relevant method.

It should be noted that the above-mentioned embodiments illustraterather than limit the invention, and that those skilled in the art willbe able to design many alternative embodiments without departing fromthe scope of the appended claims. In the claims, any reference signsplaced between parentheses shall not be construed as limiting the claim.Use of the verb “comprise” and its conjugations does not exclude thepresence of elements or steps other than those stated in a claim. Thearticle “a” or “an” preceding an element does not exclude the presenceof a plurality of such elements. The invention may be implemented bymeans of hardware comprising several distinct elements, and by means ofa suitably programmed computer. In the device claim enumerating severalmeans, several of these means may be embodied by one and the same itemof hardware. The mere fact that certain measures are recited in mutuallydifferent dependent claims does not indicate that a combination of thesemeasures cannot be used to advantage.

1. The content distribution system comprising: a content client and acontent server, wherein the content client and content server areconnected through a network, wherein the content server is configured tosend to the content client a session description comprising at least onemedia description, each one of the at least one media descriptionscomprising connection information to enable the content client toreceive over the network a content item, wherein the system furthercomprises a network monitor for monitoring network traffic going throughthe network, and wherein the system further comprises a recommenderconfigured to mark in dependency upon the network monitor, one or moreof the media descriptions in the session description to obtain a markedsession description, the recommender configured to send the markedsession description as a recommendation to the content client.
 2. Thecontent distribution system of claim 1, wherein the network monitorcomprises a bandwidth estimator for estimating an amount of bandwidthavailable in the network for receiving a content item.
 3. The contentdistribution system of claim 2, wherein the bandwidth estimator isconfigured for determining a change in the estimated amount of availablebandwidth, and the recommender comprises an updater configured forsending the content client an updated marked session description basedon the changed estimated amount of available bandwidth.
 4. The contentdistribution system of claim 1 comprising a gateway, the networkcomprising a first and second network, the content client and thegateway connected through the first network, the gateway and the contentserver connected through the second network, each one of the connectioninformation enabling the content client to receive over the first andsecond network and through the gateway the content item, wherein thegateway comprises the network monitor for monitoring network trafficgoing through the gateway between the first network and second network.5. The content distribution system of claim 4, wherein the networkmonitor comprises a bandwidth estimator for estimating an amount ofbandwidth available in the network for receiving a content item, andwherein network traffic going through the gateway between the firstnetwork and the second network is limited to a maximum bandwidth, thebandwidth estimator comprises a network bandwidth determinator fordetermining a current bandwidth of network traffic going through thegateway between the first network and second network, and the bandwidthestimator is configured for estimating an amount of available bandwidthby subtracting the current bandwidth from the maximum bandwidth.
 6. Thecontent distribution system of claim 4, comprising a router in thesecond network, the gateway connected to the content server through therouter, a network connection between the gateway and the router having anetwork capacity lower than a network capacity of a network connectionbetween the content client and the gateway.
 7. The content distributionsystem of claim 4, wherein the gateway comprises the recommender.
 8. Thecontent distribution system of claim 4, wherein at least one furthercontent client is connected to the gateway through the first network. 9.The content distribution system of claim 4, wherein the network monitoris configured to measure an accumulated network traffic going throughthe gateway between the first and the second network.
 10. The contentdistribution system of claim 1, wherein the session descriptioncomprises multiple media descriptions.
 11. The content distributionsystem of claim 10, wherein the multiple media descriptions haverespective multiple bandwidth requirements, the recommender isconfigured to mark a media description having a bandwidth requirementbelow the estimated available bandwidth.
 12. The content distributionsystem of claim 10, the content client having a user interface fordisplaying the multiple media descriptions on a display and for highlighting the marked media description.
 13. The content distributionsystem of claim 1, wherein the recommender is configured to remove independency upon the network monitor, one or more of the multiple mediadescriptions from the session description to obtain the marked sessiondescription.
 14. The content distribution system of claim 1, wherein thecontent client comprises a set-top box.
 15. A gateway configured for usein a content distribution system comprising a content client, thegateway, and a content server, wherein the gateway is connectable to thecontent client through a first network, the gateway connectable to thecontent server through a second network, the gateway comprising anetwork monitor for monitoring network traffic going through the gatewaybetween the first network and second network, the gateway comprising areceiver for receiving from the content server a session descriptioncomprising at least one media description, each one of the at least onemedia description comprising connection information to enable thecontent client to receive over the first and second network and throughthe gateway a content item, the system comprising a recommenderconfigured to mark in dependency upon the network monitor, one or moreof the at least one media description in the session description toobtain a marked session description, the recommender configured to sendthe marked session description as a recommendation to the contentclient.
 16. A method for distributing content, comprising: monitoringnetwork traffic going through a network, receiving a session descriptioncomprising at least one media description, each one of the at least onemedia description comprising connection information to enable a contentclient to receive over the network a content item, marking in dependencyupon the monitored network traffic, one or more of the at least onemedia description in the session description to obtain a marked sessiondescription, and sending the marked session description as arecommendation to the content client.
 17. A computer program comprisingcomputer program code adapted to perform all the steps of claim 16 whenthe computer program is run on a computer.